home *** CD-ROM | disk | FTP | other *** search
/ The Atari Compendium / The Atari Compendium (Toad Computers) (1994).iso / files / prgtools / programm.ing / m2posx10.zoo / m2posix.10 / test / tdossyst.mpp < prev    next >
Encoding:
Text File  |  1993-06-29  |  3.3 KB  |  131 lines

  1. MODULE TDosSystem;
  2. __IMP_SWITCHES__
  3. #ifdef HM2
  4. #ifdef __LONG_WHOLE__
  5. (*$!i+: Modul muss mit $i- uebersetzt werden! *)
  6. (*$!w+: Modul muss mit $w- uebersetzt werden! *)
  7. #else
  8. (*$!i-: Modul muss mit $i+ uebersetzt werden! *)
  9. (*$!w-: Modul muss mit $w+ uebersetzt werden! *)
  10. #endif
  11. #endif
  12. (* Test und Anwendungsbeispiel fuer Modul 'DosSystem'
  13.  *
  14.  * hk, 23-Jun-93
  15.  *)
  16.  
  17. VAL_INTRINSIC
  18.  
  19. FROM PORTAB IMPORT
  20.   UNSIGNEDLONG;
  21.  
  22. FROM DosSystem IMPORT
  23.   MiNTVersion, DosVersion, GetOsHeader, SysClock, MachineType, Machine,
  24.   CallShell, ShellInstalled, Shell, BasePtr, BasePage, OsPtr, OsHeader,
  25.   CmdLine, ProcessDomain, FileLocking, CPUType, CPU;
  26.  
  27. FROM InOut IMPORT
  28.   WriteInt, WriteCard, Read, WriteString, Write, WriteLn;
  29.  
  30. VAR
  31.   os   : OsPtr;
  32.   cmd  : CmdLine;
  33.   c    : CHAR;
  34.   ret  : INTEGER;
  35.   time : UNSIGNEDLONG;
  36.  
  37. BEGIN
  38.  time := SysClock();
  39.  GetOsHeader(os);
  40.  
  41.  WriteString("        Rechnertyp: ");
  42.  CASE Machine() OF
  43.    atariST  : WriteString("atariST");
  44.   |atariSTE : WriteString("atariSTE");
  45.   |atariTT  : WriteString("atariTT");
  46.  ELSE
  47.               WriteString("atari");
  48.  END;
  49.  WriteLn;
  50.  WriteString("               CPU: ");
  51.  CASE CPU() OF
  52.    CPU68000 : WriteString("68000");
  53.   |CPU68010 : WriteString("68010");
  54.   |CPU68020 : WriteString("68020");
  55.   |CPU68030 : WriteString("68030");
  56.   |CPU68040 : WriteString("68040");
  57.  ELSE
  58.               WriteString("68XXX");
  59.  END;
  60.  WriteLn;
  61.  WriteString("  ``File locking'': wird ");
  62.  IF NOT FileLocking() THEN
  63.    WriteString("nicht ");
  64.  END;
  65.  WriteString("unterstützt");
  66.  WriteLn;
  67.  
  68.  WriteString("       TOS-Version: ");
  69.  WriteCard(VAL(CARDINAL,os^.osVersion DIV 256), 0);
  70.  Write('.');
  71.  IF os^.osVersion MOD 256 < 10 THEN
  72.    Write('0');
  73.  END;
  74.  WriteCard(VAL(CARDINAL,os^.osVersion MOD 256), 0);
  75.  WriteLn;
  76.  
  77.  WriteString("    GEMDOS-Version: ");
  78.  WriteCard(DosVersion() MOD 256, 0);
  79.  Write('.');
  80.  WriteCard(DosVersion() DIV 256, 0);
  81.  WriteLn;
  82.  
  83.  WriteString("      MiNT-Version: ");
  84.  WriteCard(MiNTVersion() DIV 256, 0);
  85.  Write('.');
  86.  IF MiNTVersion() MOD 256 < 10 THEN
  87.    Write('0');
  88.  END;
  89.  WriteCard(MiNTVersion() MOD 256, 0);
  90.  WriteLn;
  91.  
  92.  WriteString("    Process-Domain: "); WriteInt(ProcessDomain(-1), 0);
  93.  CASE ProcessDomain(-1) OF
  94.    0 : WriteString(" (TOS)");
  95.   |1 : WriteString(" (MiNT)");
  96.  ELSE  WriteString(" (UNBEKANNT)");
  97.  END;
  98.  WriteLn;
  99.  
  100.  WriteString("Installierte Shell: ");
  101.  CASE ShellInstalled() OF
  102.    None:    WriteString("KEINE");
  103.   |Gulam:   WriteString("GULÄM");
  104.   |Mupfel:  WriteString("MUPFEL");
  105.   |Gemini:  WriteString("GEMINI");
  106.   |Master:  WriteString("MASTER");
  107.   |Unknown: WriteString("UNBEKANNT");
  108.  ELSE
  109.             WriteString("**FEHLER !");
  110.  END;
  111.  WriteLn;
  112.  
  113.  WriteString("Soll ein Shell-Call (ls) ausgeführt werden (y/Y)?"); WriteLn;
  114.  Read(c); WriteLn;
  115.  IF CAP(c) = 'Y' THEN
  116.    WriteString("Shell-Call:"); WriteLn;
  117.    WriteString("-----------"); WriteLn;
  118.    cmd := "ls";
  119.    ret := CallShell(cmd);
  120.    WriteString("-----------"); WriteLn;
  121.    WriteString("Return-Code: "); WriteInt(ret, 0); WriteLn;
  122.  END;
  123.  time := SysClock() - time;
  124.  WriteString("Für die Ausführung des Moduls wurden ");
  125.  WriteCard(VAL(CARDINAL,(time * LC(5)) DIV LC(1000)), 0);
  126.  Write('.');
  127.  WriteCard(VAL(CARDINAL,(time * LC(5)) MOD LC(1000)), 0);
  128.  WriteString(" Sekunden benötigt"); WriteLn;
  129.  Read(c);
  130. END TDosSystem.
  131.